package com.warehouse_management.system.service;

import com.warehouse_management.login.model.Users;
import com.warehouse_management.system.model.*;
import com.warehouse_management.config.PageModel;

import java.util.List;

public interface ISystemService {

    public List<Job> queryAllJob(Job job);

    public List<Job> queryAllJobById(Job job);

    //职位分页
    public PageModel<Job> PageJobPosition(Job job, PageModel<Job> pageModel);

    public int addJobPosition(JobCondition job);

    public int updateJobPosition(JobCondition job);

    public int updateJobPositionByState(JobCondition job);

    public List<Module> queryAllMoud0();
    public List<Module> queryAllMoud1();
    public List<Module> queryAllMoud2();
    public List<Module> queryAllMoud3();
    public List<Module> queryAllMoud4();
    public List<Module> queryAllMoud5();

    public int addpermiss(Permission permission);

    /**
     * 陈博
     * 根据条件查询所有用户集合
     * @name cb
     * @param dept 查询条件
     * @return 用户集合
     */
    public List<Users> getUserListByUsers(Dept dept);



    /**
     * 陈博
     * 根据条件分页查询用户集合
     * @name cb
     * @param dept 查询条件
     * @param pageModel 分页条件
     * @return 分页模型
     */
    public PageModel<Users> getUserListByUsers(Dept dept, PageModel<Users> pageModel);

    /**
     * 陈博
     * @param user
     * @return
     */
    public int addUser(Users user);


    /**
     * lintao
     * @param pageModel
     * @return
     */
    PageModel<Users> getUserList(PageModel<Users> pageModel);


    /**
     * 连小龙
     * 查询全部模块
     * @param
     * @return
     */
    List<Module> queryAllModule(Module module);

    //模型分页
    public PageModel<ModuleCondition> PageModulePosition(Module module, PageModel<ModuleCondition> pageModel);

    /**
     * 连小龙
     * 通过模块id查询模块
     * @param module_id
     * @return
     */
    List<Module> queryAllModuleById(String module_id);

    /**
     * 连小龙
     * 通过模块名称查询模块
     * @param
     * @return
     */
    PageModel<ModuleCondition> queryAllModuleByName(Module module, PageModel<ModuleCondition> pageModel);

    /**
     * 连小龙
     * 增加模块
     * @param module
     * @return
     */
    int addModulePosition(Module module);

    /**
     * 连小龙
     * 修改模块
     * @param module
     * @return
     */
    int updateModulePosition(Module module);


    /**
     * 连小龙
     * 修改模块状态
     * @param md
     * @return
     */
    int updateModulePositionByState(Module md);

    /**
     * 周永成
     * 查询日志
     * @return 日志集合
     */
    public PageModel<Journal> queryAllJournal(PageModel<Journal> pageModel);

    /**
     * 周永成
     * 根据id查询日志
     * @return 用户日志
     */
    public Journal queryJournalById(Integer id);

    /**
     * 周永成
     * 模糊查询
     * @param j_Id              员工编号
     * @param uname             员工姓名
     * @param jcontent          日志内容
     * @param module_rname      操作模块
     * @param jdate1            记录时间1
     * @param jdate2            记录时间2
     * @return                  日志结果
     */
    public PageModel<Journal> queryJournalByLike(Integer j_Id,
                                                 String uname,
                                                 String jcontent,
                                                 String module_rname,
                                                 String jdate1,
                                                 String jdate2,
                                                 PageModel<Journal> pageModel);


    /**
     * 邹佳乐
     * 查询所有区域
     */
    public  List<City> queryAllCity(String sheng, String shi);

}
